"""
conftest文件：
专门存放夹具的地方
一般是和测试用例放到一起（平级）
放入的夹具，不需要像其他函数一样的导入模块，这个是直接可以拿来用的
"""
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
"""
@pytest.fixture(scope='function',autouse=True)
def qqq2():
    print("qqq")
@pytest.fixture(scope='function',autouse=True)
def qqq1():
    print("qqq1")
"""
"""
qqq < qqq1 ，所以qqq夹具优先执行，其次是qqq2

夹具执行顺序，是按照ascii码值的顺序来走
数值比较小的，会先执行
数值比较大的，会后执行
"""


"""
fixture是夹具，可以把一个方法，当成形参传入其他测试用例里面
会优先执行夹具，再执行测试用例本身
"""
"""
@pytest.fixture(scope='module',autouse=True,name='loggg')
def 秦钟阳():
    print("秦钟阳")
@pytest.fixture(name='qinzhongyang')
def login():
    print("登录")"""
"""
当没有autouse自动开关，夹具执行顺序是按照用例传入的顺序来的
"""
"""
fixture夹具参数
name：重命名，为这个夹具重新赋予名字，测试用例再调用的时候，需要传入新的名字
scope：可以识别用例的级别
    function：每个测试用例找到它，并执行一次（默认级别）
    class：每个类找到它，并执行一次
    session：整个项目级别，找到它，并执行一次
    module：每个py文件找到它，并执行一次
autouse:自动开关，默认是False
        True：打开自动执行
        False：关闭自动执行
"""

@pytest.fixture(name='driver')
def open_browser():
    # setup
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    driver.maximize_window()
    driver.implicitly_wait(15)
    # teardown
    yield driver            # yield生成器，相当于一个return，把驱动返回；
    # 函数再次调用的时候，会执行yield下面的代码块
    sleep(5)
    driver.quit()


def test_inputConetnt(driver):      # 把夹具的返回值传进来
    browser = driver        # 赋值对象，用这个驱动做操作
    browser.find_element(By.ID,'kw').send_keys('测试一下，你就知道')


























